---
title: Enums
summary: API reference for Enums.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-21
library: SAIF.Business.Policy
reference_type: package
---

# Enums

`Enums` is the policy domain's central code⇄enum translation container: it declares the enum members used across `PolicyInformation`, `iPolicyPeriodBase`, and other policy types, and provides eleven paired converters that translate database code literals into these enums and back, always degrading unknown input to a neutral value instead of raising ([BR-POL-017](../../business-rules.md#br-pol-017-code-enum-conversion-fallback)).

## Purpose
- Declare the policy domain's vocabulary of enums (`MarketTypes`, `PolicyOwnershipSystems`, `RatingPlans`, etc.) consumed throughout this library and by `SAIF.Business.View.Policy`.
- Convert between database code literals (e.g. `"ARP"`, `"VOL"`) and their corresponding enum members in both directions, with unrecognised input always falling back to a defined neutral member ([BR-POL-017](../../business-rules.md#br-pol-017-code-enum-conversion-fallback)).
- Back `PolicyInformation.MarketType` ([BR-POL-004](../../business-rules.md#br-pol-004-market-type-code-classification)) with `ConvertMarketType`.

## Context
- Namespace: `SAIF.Business.Policy`
- Assembly/package: `SAIF.Business.Policy` (`PolicyCommon`)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `EntityGroups` (enum) | `Public Enum EntityGroups` — Corporation, LimitedLiabilityCompany, LimitedLiabilityPartnership, Partnership, SoleOwner, Others | Classifies the legal entity structure of a policyholder; has no code converter. |
| `MarketTypes` (enum) | `Public Enum MarketTypes` — Unassigned, AssignedRisk, Voluntary | Classifies a policy's market type; consumed by `PolicyInformation.MarketType` (BR-POL-004). |
| `OriginalUserTypes` (enum) | `Public Enum OriginalUserTypes` — Unassigned, Agent, CAPS, SAIFOther, NCCITransfer, AgencyTransfer | Classifies the originating user type for a policy submission. |
| `FinancialSystems` (enum) | `Public Enum FinancialSystems` — Unassigned, AR, WCIS, WINS | Classifies which financial system owns a policy's financial data. |
| `PayrollReportFrequencies` (enum) | `Public Enum PayrollReportFrequencies` — Unknown, Annually, SemiAnnually, Quarterly, Monthly | Classifies how often payroll is reported for a policy. |
| `SalesPlans` (enum) | `Public Enum SalesPlans` — Unknown, GuaranteedCost, Retro, GroupRetro | Classifies a policy's sales plan type. |
| `PolicyIssuanceSystems` (enum) | `Public Enum PolicyIssuanceSystems` — Unknown, WCIS, PMS, WINS | Classifies which system issued the policy. |
| `PolicyRelationships` (enum) | `Public Enum PolicyRelationships` — Unknown, LeasingCompany, WrapUp, SubAccount, StateOfOregon | Classifies a policy's relationship type to other policies. |
| `RenewalTracks` (enum) | `Public Enum RenewalTracks` — Unknown, Manual, Automatic | Classifies whether a policy renews manually or automatically. |
| `CancellationTracks` (enum) | `Public Enum CancellationTracks` — Unknown, Manual, Automatic | Classifies whether a policy is cancelled manually or automatically. |
| `WaiverTypes` (enum) | `Public Enum WaiverTypes` — All, AllWritten, Full, Partial, TwentyDayNotice, AllWrittenConstruction, Unknown | Classifies the type of waiver applied to a policy. |
| `PolicyOwnershipSystems` (enum) | `Public Enum PolicyOwnershipSystems` — WCIS, SAIFQuote | Identifies which system owns a policy; produced by `PolicyInformation.GetPolicyOwnershipSystem` (BR-POL-005). Has no code converter. |
| `RatingPlans` (enum) | `Public Enum RatingPlans` — Unknown, Experience, Claim, Merit, NonRated, SARAP | Classifies a policy's rating plan type. |
| `ConvertMarketType` (2 overloads) | `Shared Function ConvertMarketType(inCode As String) As MarketTypes` / `Shared Function ConvertMarketType(inType As MarketTypes) As String` | Converts between market-type code and enum; `"ARP"`→`AssignedRisk`, `"VOL"`→`Voluntary`, else `Unassigned` (BR-POL-004, BR-POL-017). |
| `ConvertOriginalUserType` (2 overloads) | `Shared Function ConvertOriginalUserType(...)` (both directions) | Converts between original-user-type code and enum, falling back to `Unassigned`/`""` (BR-POL-017). |
| `ConvertFinancialSystem` (2 overloads) | `Shared Function ConvertFinancialSystem(...)` (both directions) | Converts between financial-system code and enum, falling back to `Unassigned`/`""` (BR-POL-017). |
| `ConvertPayrollReportFrequency` (2 overloads) | `Shared Function ConvertPayrollReportFrequency(...)` (both directions) | Converts between payroll-report-frequency code and enum, falling back to `Unknown`/`""` (BR-POL-017). |
| `ConvertSalesPlan` (2 overloads) | `Shared Function ConvertSalesPlan(...)` (both directions) | Converts between sales-plan code and enum, falling back to `Unknown`/`""` (BR-POL-017). |
| `ConvertPolicyIssuanceSystem` (2 overloads) | `Shared Function ConvertPolicyIssuanceSystem(...)` (both directions) | Converts between policy-issuance-system code and enum, falling back to `Unknown`/`""` (BR-POL-017). |
| `ConvertPolicyRelationship` (2 overloads) | `Shared Function ConvertPolicyRelationship(...)` (both directions) | Converts between policy-relationship code and enum, falling back to `Unknown`/`""` (BR-POL-017). |
| `ConvertRenewalTrack` (2 overloads) | `Shared Function ConvertRenewalTrack(...)` (both directions) | Converts between renewal-track code and enum, falling back to `Unknown`/`""` (BR-POL-017). |
| `ConvertCancellationTrack` (2 overloads) | `Shared Function ConvertCancellationTrack(...)` (both directions) | Converts between cancellation-track code and enum, falling back to `Unknown`/`""` (BR-POL-017). |
| `ConvertWaiverType` (2 overloads) | `Shared Function ConvertWaiverType(...)` (both directions) | Converts between waiver-type code and enum, falling back to `Unknown`/`""` (BR-POL-017). |
| `ConvertRatingPlan` (2 overloads) | `Shared Function ConvertRatingPlan(...)` (both directions) | Converts between rating-plan code and enum, falling back to `Unknown`/`""` (BR-POL-017). |
| `SALES_PLAN_GUARANTEED_COST`, `SALES_PLAN_RETRO`, `SALES_PLAN_GROUP_RETRO` | `Public Const ... As String` = `"STD"`, `"RETRO"`, `"GRRET"` | Public sales-plan code literals exposed for callers that need the raw codes. |
| `ALL_WAIVER`, `ALL_WRITTEN_WAIVER`, `FULL_WAIVER`, `PARTIAL_WAIVER`, `TWENTY_DAY_NOTICE`, `ALL_WRITTEN_CONSTRUCTION` | `Public Const ... As String` = `"A"`, `"W"`, `"F"`, `"P"`, `"T"`, `"C"` | Public waiver-type code literals exposed for callers that need the raw codes. |
| `Experience`, `Claim`, `Merit`, `NonRated`, `SARAP` | `Public Const ... As String` = `"ERP"`, `"CRP"`, `"MRP"`, `"NON"`, `"SARAP"` | Public rating-plan code literals exposed for callers that need the raw codes. |

## Behavioral notes
- Every `Convert*` pair follows the same fallback rule: unrecognised codes map to the enum's `Unknown`/`Unassigned` member, and unrecognised/unmapped enum members map to an empty string ([BR-POL-017](../../business-rules.md#br-pol-017-code-enum-conversion-fallback)).
- `PolicyOwnershipSystems` and `EntityGroups` have no converters — only the enum members are declared.
- All other code literals used internally by the converters (market type, user type, financial system, payroll frequency, issuance system, relationship, renewal/cancellation track) are `Private Const` and not part of the public surface.

## Constraints and usage notes
- This class contains no data access, threading, or side effects — it is pure code translation logic.

## Sources
- SAIF.Business.Policy/Enums.vb
